//: #### Other pages
//:
//: * [Demo for `swiftgen colors`](Colors-Demo)
//: * [Demo for `swiftgen coredata`](CoreData-Demo)
//: * [Demo for `swiftgen fonts`](Fonts-Demo)
//: * [Demo for `swiftgen ib`](InterfaceBuilder-Demo)
//: * [Demo for `swiftgen json`](JSON-Demo)
//: * [Demo for `swiftgen plist`](Plist-Demo)
//: * [Demo for `swiftgen strings`](Strings-Demo)
//: * Demo for `swiftgen xcassets`
//: * [Demo for `swiftgen yaml`](YAML-Demo)

// setup code
private final class BundleToken {}
bundle = Bundle(for: BundleToken.self)

//: #### Example of code generated by swiftgen xcassets with "swift4" template

#if os(OSX)
  import AppKit.NSImage
  public typealias AssetColorTypeAlias = NSColor
  public typealias AssetImageTypeAlias = NSImage
#elseif os(iOS) || os(tvOS) || os(watchOS)
  import UIKit.UIImage
  public typealias AssetColorTypeAlias = UIColor
  public typealias AssetImageTypeAlias = UIImage
#endif

// swiftlint:disable superfluous_disable_command
// swiftlint:disable file_length

// MARK: - Asset Catalogs

// swiftlint:disable identifier_name line_length nesting type_body_length type_name
internal enum Asset {
  internal enum Colors {
    internal enum _24Vision {
      internal static let background = ColorAsset(name: "24Vision/Background")
      internal static let primary = ColorAsset(name: "24Vision/Primary")
    }
    internal static let orange = ImageAsset(name: "Orange")
    internal enum Vengo {
      internal static let primary = ColorAsset(name: "Vengo/Primary")
      internal static let tint = ColorAsset(name: "Vengo/Tint")
    }
  }
  internal enum Data {
    internal static let data = DataAsset(name: "Data")
    internal enum Json {
      internal static let data = DataAsset(name: "Json/Data")
    }
    internal static let readme = DataAsset(name: "README")
  }
  internal enum Images {
    internal enum Exotic {
      internal static let banana = ImageAsset(name: "Exotic/Banana")
      internal static let mango = ImageAsset(name: "Exotic/Mango")
    }
    internal enum Round {
      internal static let apricot = ImageAsset(name: "Round/Apricot")
      internal static let apple = ImageAsset(name: "Round/Apple")
      internal enum Double {
        internal static let cherry = ImageAsset(name: "Round/Double/Cherry")
      }
      internal static let tomato = ImageAsset(name: "Round/Tomato")
    }
    internal static let `private` = ImageAsset(name: "private")
  }
}
// swiftlint:enable identifier_name line_length nesting type_body_length type_name

//: #### Usage Example

// colors
let color1 = UIColor(asset: Asset.Colors.Vengo.primary)
let color2 = Asset.Colors.Vengo.tint.color

// data
let data1 = NSDataAsset(asset: Asset.Data.data)
let data2 = Asset.Data.readme.data

// images
let image1 = UIImage(asset: Asset.Images.Exotic.banana)
let image2 = Asset.Images.Round.tomato.image
